Modern three-dimensional imaging techniques including computed tomography (CT) and magnetic resonance imaging (MRI) have the ability to produce volumetric representations of anatomy.
Such three-dimensional techniques produce large three-dimensional volume data sets comprising a three-dimensional array of voxels each representing a property of a corresponding measurement volume. The voxel data may be representative of a scalar field of the scanner. For example, in CT each voxel may represent the attenuation of X-ray radiation by a respective, corresponding measurement volume. The attenuation at the voxel may be represented by an intensity value in Hounsfield units (HU), which is associated with the proton density at the measurement volume.
Shaded volume rendering (SVR) is used in many medical visualization products. SVR is a method of rendering an image for display from volumetric image data.
A three-dimensional volume data set may be rendered using SVR to obtain a two-dimensional image data set that is representative of an image for display, for example for display on a display screen. The two-dimensional image data set comprises an array of pixel values, for example pixel color values.
In SVR, the value for each pixel is usually determined by casting a ray from viewing position or other ray path source into the volume of the volumetric data set. The ray follows a straight path through the data set, sampling the intensity data at points located at regular steps along the ray, and determining at least one image data value for each sampled point using a transfer function which relates intensity to image data values.
The image data values for each sampled point that is determined using the transfer function usually include color and alpha channels (C and α). Alpha represents opacity on a scale where 0 is transparent and 1 is opaque. Each sampled point i is associated with a color Ci and an opacity αi. The opacity may be representative of how solid the material may be at that sample. The opacity may represent the extent to which light is prevented from passing through the sample, regardless of the mechanism by which the light is prevented from passing.
For example, for CT, high intensity values (for example, 1000 HU) may be expected to come from bone, and therefore may be colored white using the transfer function. Lower intensity values may be expected to be representative of organs, for example the liver, and may therefore be colored red. Intensity values that may be associated with tissue may be assigned a lower opacity than intensity values that may be associated with bone. It is known to use transfer functions that provide different variations of opacity values and colors with intensity depending on the material or portion of anatomy that is of most interest. For example in some cases, bone is made transparent or almost transparent (e.g. low opacity value) in the render by use of a suitable transfer function if the anatomical features of interest are likely to be located behind bone.
The ray accumulates a final pixel color according to the following summation of color and opacity values over all sampled points on the ray:Cfinal=Σi=1NCiαiΠj=0i−1(1−αj)  (Equation 1)where Cfinal is the final pixel color, N is the number of sampled points on the ray, Ci is the pixel color at sample i (determined via the transfer function) and αi is the opacity at sample i (determined via the transfer function).
It is known to perform complex rendering calculations for each sampled point with the aim of improving image quality. Such complex calculations may include, for example, pre-integration, lighting techniques or segmentation interpolation.
Each of these complex calculations has a performance cost. For example, the use of each complex calculation may slow down the SVR rendering and/or require additional memory when compared to performing the rendering without the use of the complex calculation.
FIG. 1 illustrates part of a rendering method using complex calculations, which in this case are complex shading calculations. The process of FIG. 1 is performed for each sampled point along a ray. At stage 2, the intensity for the sampled point is determined by looking up the volume (determining the intensity at the appropriate point using the volumetric image data). At stage 4, a sample color and opacity for the sample is determined using the transfer function. At stage 6, complex shading calculations are performed on the sampled point. The complex shading calculations may result in an updated color value for the sampled point. The updated color value may be referred to as an image data value. The updated color values are used in the determination of the final pixel color from the ray, by integrating over the updated color and opacity values for all sampled points on the ray using Equation 1.
Using complex shading calculations may provide better image quality than is obtained from a rendering in which no complex shading calculations are used. Other complex per-sample calculations may also improve image quality.
It is known in some rendering processes to provide early ray termination, in which if the accumulated opacity reaches a threshold at a particular sampled point then no further rendering calculations are performed for points beyond the sampled point, regardless of intensity values or image data values such as opacity or color values for points beyond the sampled point. It is also known in some rendering processes to vary sample point spacings in dependence on opacity values.
It is known in some rendering processes to perform a thresholding process such that no rendering calculation is performed for sampled points that have an intensity value beyond a certain threshold or within a certain range. For example, it is known to perform no rendering calculation for sampled points that are in a region or air or vacuum such that those points are effectively ignored in the render.